package com.haozi.ehub.core.util;

import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import com.haozi.ehub.entity.code.RSACode;


/**
 * RSA密码加密帮助类
 * @author ：terry
 * @date ：Created in 2020/6/29 15:15
 * @description：TODO
 * @version: 1.0
 */
@SuppressWarnings(value = "all")
public class RSAEncoderUtils {


    /**
     * 加密
     * @author     ： terry
     * @date       ： Created in 2020/7/2 17:17
     * @param arg 未加密的密码
     * @return boolean 返回true/false
     */
    public static String encrypt(String arg){
        if(arg != null){
            return new RSA(null, RSACode.PUBLIC_KEY).encryptBase64(arg,KeyType.PublicKey);
        }
        return null;
    }

    /**
     * 解密
     * @author     ： terry
     * @date       ： Created in 2020/7/2 17:17
     * @param arg 加密后的密码
     * @return boolean 返回true/false
     */
    public static String decrypt(String arg){
        if(arg != null){
            RSA rsa = new RSA(RSACode.PRIVATE_KEY,null);
            byte[] decode = Base64.decode(arg);
            byte[] decrypt = rsa.decrypt(decode, KeyType.PrivateKey);
            return StrUtil.str(decrypt, CharsetUtil.CHARSET_UTF_8);
        }
        return null;
    }

}
